package net.hn.hnms.biz.analysis.mapper;

import net.hn.hnms.biz.analysis.domain.CoalSpontaneousCombustionAlarm;
import net.hn.hnms.biz.analysis.domain.OffDutyRecord;
import net.hn.hnms.biz.analysis.domain.dto.*;
import net.hn.hnms.biz.analysis.domain.vo.SensorMonitorVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SafetyMapper {

    List<SensorMonitorDto> getHisSensorMonitor(@Param("svo") SensorMonitorVo svo);

    int getOvercrowdData(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    int getLeaderOnDuty(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<HisSensorAlarmDto> getHisSensorAlarm(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    int getVentilatorOffineStatus(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<String> getSenorCablirationAlarm(@Param("begin15Time") String begin15Time, @Param("end15Time") String end15Time, @Param("mineCode") String mineCode);

    List<SensorMonitorDto> getHisCoalfaceGas(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<SensorMonitorDto> getCoalfaceOxygen(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<SensorMonitorDto> getCoalfaceWindspeed(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    int getGasAlarmCount(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    int getGasAlarmUndoneCount(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    Float getWaterInflowDay(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<LongViewHoleDto> getLongViewHoleData(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<AreaStaffCountDto> getDustExpousreDurationPersonCount(@Param("list") List<String> coalfaceId, @Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<AreaStaffCountDto> getDustExpousrePersonCount(@Param("list") List<String> coalfaceId, @Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<AlarmInfoDto> getCoalfaceWindspeedMaxValue(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<GroundPressureDto> getGroundPressureData(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<OffDutyDto> getOffDutyList(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    OffDutyDto getYesterdayWellOutTime(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    List<OffDutyDto> getCurrentLeaderDuty(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("mineCode") String mineCode);

    void saveOffDutyRecord(@Param("list") List<OffDutyRecord> offDutyRecords);

    List<SensorMonitorDto> selectSensorAlarmData(@Param("sensorType") String sensorType, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords);

    void insertCoalSpontaneousCombustionAlarm(@Param("list") List<CoalSpontaneousCombustionAlarm> coalSpontaneousCombustionAlarmList);

    List<OffDutyDto> getLeaderAttendencyByTime(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<WellOutDto> getWellOutData(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<BaseOverManAlarm> getOverManAlarm(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<RoofAbscissionDto> getRoofAbscissionData(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<SupportPressureDto> getSupportPressureData(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    Integer getKeyAreaStaffCount(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    Integer getStaffCount(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    Integer getSpecialStaffCount(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    Integer getLeaderCount(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<WaterEmissionAlarmDto> getWaterInflowData(@Param("beginTime") String lastBeginTime, @Param("endTime") String lastEndTime, @Param("mineCode") String code);

    List<BaseStationInfoDto> getSensorInfo(@Param("sensorType")String sensorType, @Param("keywords")String keywords);

    List<SensorDataDto> getSensorData(@Param("pointCode")String pointCode, @Param("beginTime")String bTime, @Param("endTime")String eTime);

    void batchInsertSensorData(@Param("list")List<SensorConvertedData> resultList);

    void batchInsertSensorPredData(@Param("list")List<SensorConvertedData> sensorConvertedData);
}
